/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package models.entity;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import utilidades.DataBaseInstance;

/**
 *
 * @author 18752803-8
 */
public class Productos {
    protected double buscarProducto;
    protected double Producto_precio;
    protected int cantidad;
    protected int producto_stock;
   
   
    
    public double getBuscarProducto() {
        return buscarProducto;
    }

    public void setBuscarProducto(double buscarProducto) {
        this.buscarProducto = buscarProducto;
    }
    

    public double getProducto_precio() {
        return Producto_precio;
    }

    public void setProducto_precio(double Producto_precio) {
        this.Producto_precio = Producto_precio;
    }

    public int getCantidad() {
        return cantidad;
    }

    public void setCantidad(int cantidad) {
        this.cantidad = cantidad;
    }

    public int getProducto_stock() {
        return producto_stock;
    }

    public void setProducto_stock(int producto_stock) {
        this.producto_stock = producto_stock;
    }
    public models.entity.Productos buscarProducto(int codigoProducto){
        models.entity.Productos prod=null;
        Connection cn=null;
        PreparedStatement pr=null;
        ResultSet rs=null;
        try{
            cn=DataBaseInstance.getInstanceConnection();
            String sql="SELECT * FROM Productos WHERE id=?";
            pr=cn.prepareStatement(sql);
            pr.setInt(1, codigoProducto);
            rs=pr.executeQuery();
            while(rs.next()){
                prod=new models.entity.Productos();
                prod.setBuscarProducto(rs.getDouble("producto_Precio"));
                prod.setProducto_precio(rs.getDouble("producto_Stock"));
            }
        }catch(SQLException ex){
            ex.printStackTrace();
            prod=null;
        }finally{
            try{
                rs.close();
                pr.close();
                cn.close();
            }catch(SQLException ex){
                ex.printStackTrace();
            }
        }
        return prod;
    }

    /**
     * Metodo utilizado para actualizar el stock de los productos
     * @param vp Vector de productos que se va actualizar el stock
     * @return Retorna un valor booleano para saber si se actulizo los stocks
     */
    public boolean actualizarStocks(Vector<models.entity.Productos> vp){
        boolean actualizo=false;
        Connection cn=null;
        PreparedStatement pr=null;
        try{
            cn=DataBaseInstance.getInstanceConnection();
            for(models.entity.Productos prod : vp){
                String sql="UPDATE Productos SET ";
                sql+=" cantidad=? ";
                sql+=" WHERE id=?";
                pr=cn.prepareStatement(sql);
                pr.setInt(1, prod.getCantidad());
                pr.setInt(2, prod.getProducto_stock());
                if(pr.executeUpdate()==1){
                    actualizo=true;
                }else{
                    actualizo=false;
                    break;
                }
            }
        }catch(SQLException ex){
            ex.printStackTrace();
            actualizo=false;
        }finally{
            try{
                pr.close();
                cn.close();
            }catch(SQLException ex){

            }
        }
        return actualizo;
    }
}
